const express = require('express')
const router = express.Router()
const List = require('../models/ListItem')

/**
 * 查询子分类下的列表商品数据
 */
router.get('/:id?', (req, res) => {
  const { id } = req.params
  const {title, sort = '0'} = req.query
  const start = Number(req?.query?.start ?? 0) ?? 0
  const perpage = Number(req?.query?.perpage ?? 20)
  let sortBy = ''
  switch(sort) {
    case '0': // 综合
      sortBy = ''
      break
    case '1': // 销量降序
      sortBy = '-saleNum'
      break
    case '2': // 价格升序
      sortBy = 'price'
      break
    case '3': // 价格降序
      sortBy = '-price'
      break
  }
  const condition = {}
  if (id) {
    condition.tabId = id
  }
  if (title) {
    condition.title = new RegExp(title, 'i')
  }

  List
    .count(condition)
    .then(total => {
      List
        .find(condition, {_id: false, __v: false})
        .limit(perpage)
        .skip(start)
        .sort(sortBy)
        .then(data => {
          res.json({
            code: 200,
            data: {
              isEnd: start + perpage >= total,
              list: data,
              perpage,
              start,
              nextIndex: start + perpage,
              total
            }
          })
        })
        .catch(() => {
          res.json({
            code: 500,
            data: null,
            message: '服务器内部错误...'
          })
        })
    })
})
// router.get('/:id/items', (req, res) => {
//   const { id } = req.params
//   const start = Number(req?.query?.start ?? 0) ?? 0
//   const perpage = 20

//   List
//     .count({tabId: id})
//     .then(total => {
//       List
//         .find({tabId: id}, {_id: false, __v: false})
//         .limit(perpage)
//         .skip(start)
//         .then(data => {
//           res.json({
//             code: 200,
//             data: {
//               isEnd: start + perpage >= total,
//               list: data,
//               perpage,
//               start,
//               nextIndex: start + perpage,
//               total
//             }
//           })
//         })
//     })
// })

// router.get('/', (req, res) => {
//   const {title, sort = '0'} = req.query
//   const start = Number(req?.query?.start ?? 0) ?? 0
//   const perpage = 20
//   let sortBy = ''
//   switch(sort) {
//     case '0': // 综合
//       sortBy = ''
//       break
//     case '1': // 销量降序
//       sortBy = '-saleNum'
//       break
//     case '2': // 价格升序
//       sortBy = 'price'
//       break
//     case '3': // 价格降序
//       sortBy = '-price'
//       break
//   }

//   List
//     .count({title: new RegExp(title)})
//     .then(total => {
//       List
//         .find({title: new RegExp(title)}, {_id: false, __v: false})
//         .limit(perpage)
//         .skip(start)
//         .sort(sortBy)
//         .then(data => {
//           res.json({
//             code: 200,
//             data: {
//               isEnd: start + perpage >= total,
//               list: data,
//               perpage,
//               start,
//               nextIndex: start + perpage,
//               total
//             }
//           })
//         })
//     })
// })

module.exports = router
